/********************************************************************************
	Author: Scott Bevin
*********************************************************************************/

#pragma once

#include "../GraphCommon.h"

namespace XF
{
	class GraphEdge
	{
	protected:
		int mFromIndex;
		int mToIndex;

	public:
		GraphEdge(int from, int to) : 
				mFromIndex(from),
				mToIndex(to) {}

		GraphEdge() : 
				mFromIndex(XF_INVALID_NODE_INDEX),
				mToIndex(XF_INVALID_NODE_INDEX) {}

		virtual ~GraphEdge(){}

		virtual float Cost(){ return 1.0f; }

		int From() const { return mFromIndex; }
		void From(int val) { mFromIndex = val; }
		int To() const { return mToIndex; }
		void To(int val) { mToIndex = val; }
	};
}